import {
  get,
  post
} from "../http"

const USE_MOCK = false;

/**
 * 获取订单列表数据
 * @param {Object} params
 */
export function getOrderList({
  order_state,
  query_str,
  page,
  page_size,
}) {
  return get({
    url: '/v1/order/list',
    data: {
      order_state, // 订单状态筛选 (-999:全部订单 0:待支付 4:已支付 7:交易完成)
      query_str, // 订单搜索(产品名称/预订人/手机号)
      page,
      page_size,
      mock: USE_MOCK
    }
  })
}

/**
 * 获取订单详情数据
 * @param {Object} params
 */
export function getOrderDetail({
  order_no, // 订单编号
}) {
  return get({
    url: '/v1/order/detail',
    data: {
      order_no,
      mock: USE_MOCK
    }
  })
}

/**
 * 获取订单进度数据
 * @param {Object} params
 */
export function getOrderProgress({
  order_no, // 订单编号
}) {
  return get({
    url: '/v1/order/progress',
    data: {
      order_no,
      mock: USE_MOCK
    }
  })
}

/**
 * 获取订单核销详情数据
 * @param {Object} params
 */
export function getOrderVoucher({
  order_no, // 订单编号
  is_encode, // 订单号是否加密 0:否 1:是，免登录使用
}) {
  return post({
    url: is_encode == 1 ? '/v1/order/nv' : '/v1/order/voucher',
    data: {
      order_no,
      mock: USE_MOCK
    }
  })
}

/**
 * 获取单个核销详情数据
 * @param {Object} params
 */
export function getVoucherSingleDetail({
  order_no,
  code,
  is_encode, // 订单号是否加密 0:否 1:是，免登录使用
}) {
  return post({
    url: is_encode == 1 ? '/v1/order/nvs' : '/v1/order/voucher_single',
    data: {
      order_no, // 订单编号
      code, // 核销码
      mock: USE_MOCK
    }
  })
}

/**
 * 获取订单核销明细
 * @param {Object} params
 */
export function getVoucherRecord({
  order_no,
}) {
  return post({
    url: '/v1/voucher/record',
    data: {
      order_no, // 订单编号
      mock: USE_MOCK
    }
  })
}

/**
 * 订单预订
 * @param {Object} params
 */
export function doBooking({}) {
  return post({
    url: '/v1/order/booking',
    data: {
      mock: USE_MOCK
    }
  })
}

/**
 * 取消订单
 * @param {Object} params
 */
export function cancelOrder({
  order_no, // 订单编号
}) {
  return get({
    url: '/v1/order/cancel',
    data: {
      order_no,
      mock: USE_MOCK
    }
  })
}

/**
 * 重新发送短信
 * @param {Object} params
 */
export function resendSms({
  order_no,
}) {
  return post({
    url: '/v1/order/resend/sms',
    data: {
      order_no, // 订单编号
      mock: USE_MOCK
    }
  })
}

/**
 * 删除订单
 * @param {Object} params
 */
export function deltOrder({
  order_no, // 订单编号
}) {
  return get({
    url: '/v1/order/del',
    data: {
      order_no,
      mock: USE_MOCK
    }
  })
}

/**
 * 再次预订
 * @param {Object} params
 */
export function getResubmitSecret({
  order_no, // 订单编号
}) {
  return get({
    url: '/v1/order/resubmit',
    data: {
      order_no,
      mock: USE_MOCK
    }
  })
}


/**
 * 获取申请退款所需的信息
 * @param {Object} params
 */
export function getRefundSubmitInfo({
  order_no, // 订单号
  sku_id, // sku_id
}) {
  return post({
    url: '/v1/refund/apply',
    data: {
      order_no,
      sku_id,
      mock: USE_MOCK
    }
  })
}

/**
 * 获取退款手续费
 * @param {Object} params
 */
export function getRefundfee({
  order_no, // 订单号
  sku_id, // sku_id
  qty, // 退款数量
}) {
  return get({
    url: '/v1/refund/fee',
    data: {
      order_no,
      sku_id,
      qty,
      mock: USE_MOCK
    }
  })
}

/**
 * 提交退款申请
 * @param {Object} params
 */
export function submitRefund({
  order_no, // 订单号
  sku_id, // sku_id
  qty, // 退款数量
  amount, // 退款金额--前台计算退款金额
  fee, // 退款手续费--前台计算退款手续费
  reason, // 退款理由
  refund_kind, // 退款类型. <0:确认失败; 1:用户申请退款; 2:后台发起退款; 10:已使用退款; 11:逾期退款; 12:逾期被核销退款>
}) {
  return post({
    url: '/v1/refund/submit',
    data: {
      order_no,
      sku_id,
      qty,
      amount,
      fee,
      reason,
      refund_kind,
      mock: USE_MOCK
    }
  })
}

/**
 * 取消退款
 * @param {Object} params
 */
export function cancelRefund({
  refund_id, // 退款id
}) {
  return post({
    url: '/v1/refund/cancel',
    data: {
      refund_id,
      mock: USE_MOCK
    }
  })
}

/**
 * 获取退款列表
 * @param {Object} params
 */
export function getRefundList({
  order_no, // 订单编号
  sku_id,
}) {
  return get({
    url: '/v1/refund/list',
    data: {
      order_no,
      sku_id,
      mock: USE_MOCK
    }
  })
}

/**
 * 获取退款详情
 * @param {Object} params
 */
export function getRefundDetail({
  refund_id, // 退款ID
}) {
  return get({
    url: '/v1/refund/detail',
    data: {
      refund_id,
      mock: USE_MOCK
    }
  })
}